---
id: diy-builds
title: DIY InkHUD Builds
sidebar_label: DIY Builds
sidebar_position: 3
description: Information about using InkHUD on custom hardware
---

## DIY Presets

Tried-and-tested hardware combinations, with pre-made configurations.

### Supported Hardware

#### Base Device

- Heltec Mesh Node T114
- NRF52 Pro-micro DIY

#### Display Module

- WeAct Studio 1.54" B&W
- WeAct Studio 2.13" B&W (2025 Revision)
- WeAct Studio 2.9" B&W
- WeAct Studio 4.2" B&W

### Firmware

Although configurations for these devices are provided, you will still need to build the Meshtastic firmware.

#### Building With Visual Studio Code

First, [set up the build environment](/docs/development/firmware/build/#build), then:

1. Open the PlatformIO Project Tasks pane

2. Select the environment which matches your node hardware
   - `heltec-mesh-node-t114-inkhud`
   - `nrf52_promicro_diy-inkhud`

3. Run the Build task which matches your display model
   ![custom platformio build tasks for diy presets](/img/software/inkhud/diy-presets.webp)

4. Once build is complete, find the generated .uf2 file at `./pio/build/<environment>/firmware.uf2`
   ![uf2 output file from firmware build](/img/software/inkhud/firmware-build-output.webp)

#### Building with Platformio CLI

Execute `pio run -e <environment> -t <build task>`, where:

`<environment>`

- `heltec-mesh-node-t114-inkhud`
- `nrf52_promicro_diy-inkhud`

`<build task>`

- `build_weact_154`
- `build_weact_213`
- `build_weact_290`
- `build_weact_420`

Then find the generated .uf2 file at `./pio/build/<environment>/firmware.uf2`

### Installation

Install the generated .uf2 file to device using the [drag and drop method](/docs/getting-started/flashing-firmware/nrf52/drag-n-drop/#nrf52).

### Wiring

#### Heltec Mesh Node T114

| E-Ink Module | Heltec Mesh Node T114 |
| ------------ | --------------------- |
| VCC          | VCC                   |
| GND          | GND                   |
| SDA          | 0.08                  |
| SCL          | 0.07                  |
| CS           | 1.12                  |
| D/C          | 1.14                  |
| RES          | 0.05                  |
| BUSY         | 1.15                  |

![wiring diagram of we-act display connected to t114](/img/software/inkhud/pinout-t114-weact.webp)

#### NRF52 Pro-micro DIY

| E-Ink Module | Pro-micro |
| ------------ | --------- |
| VCC          | VCC       |
| GND          | GND       |
| SDA          | 1.15      |
| SCL          | 1.11      |
| CS           | 1.07      |
| D/C          | 1.02      |
| RES          | 1.01      |
| BUSY         | 1.06      |

![wiring diagram of we-act display connected to promicro](/img/software/inkhud/pinout-promicro-weact.webp)

## Other Hardware

Using InkHUD on hardware beyond the standard DIY presets will require manual customization of the firmware.
No specific support can be given here; only a general overview.

**Check for a Display Driver**

InkHUD relies on custom display drivers.
These are located in `/src/graphics/niche/Drivers/EInk/`.
Choose a display which is already supported, otherwise you will have to write the driver yourself, which requires some specialist knowledge.

**Clone and Modify an Existing InkHUD Variant**

The general instructions for [building with custom hardware](/docs/development/firmware/build/#build-with-custom-hardware) apply here.
In addition to modifying the `variant.h` file, you should also [modify `nicheGraphics.h`](https://github.com/meshtastic/firmware/tree/master/src/graphics/niche/InkHUD/docs#nichegraphicsh),
which is responsible for InkHUD's per-variant configuration.
